﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DAL;
using System.IO;
using System.Web.UI.HtmlControls;

public partial class Page_UpdateNews : BasePage
{
    TaiKhoan TK;
    protected void Page_Load(object sender, EventArgs e)
    {
        lblLoi.Text = "";

        TK = (TaiKhoan)Session["TaiKhoan"];
        if (TK == null || (TK != null && TK.MaNhomQuyen != 1))
        {

            Response.Redirect("~/Admin/Page_Login.aspx");
        }

        if (!IsPostBack)
        {
            ((HtmlGenericControl)Master.FindControl("hPageTitle")).InnerText = "Đăng tin tức";
            
            if (!string.IsNullOrEmpty(Request.QueryString["Id"]))
            {
                ((HtmlGenericControl)Master.FindControl("hPageTitle")).InnerText = "Sửa tin tức";

                TinTuc tt = TTBLL.LayTheoMa(int.Parse(Request.QueryString["Id"]));
                ViewState["MaTinTuc"] = tt.Ma;

                txtTieuDe.Text = tt.TieuDe;
                txtMoTa.Text = tt.MoTa;
                txtNoiDung.Text = tt.NoiDung;
                imgHinhAnh.Visible = true;
                imgHinhAnh.ImageUrl = "~/Images/News/" + tt.HinhAnh;
                ddlTheLoai.SelectedValue = tt.MaLoaiTT.ToString();

                trMa.Visible = false;
                lblMa.Text = tt.Ma.ToString();

                btnUpdate.Text = "Cập nhật";
                btnDelete.Visible = true;
            }
        }
    }

    bool KiemTraHopLe()
    {
        if (txtTieuDe.Text.Trim() == "")
        {
            lblLoi.Text = "Cần nhập tiêu đề tin tức!";
            txtTieuDe.Focus();
            return false;
        }
        if (txtMoTa.Text.Trim() == "")
        {
            lblLoi.Text = "Cần nhập mô tả cho tin tức!";
            txtMoTa.Focus();
            return false;
        }
        if (txtNoiDung.Text.Trim() == "")
        {
            lblLoi.Text = "Cần nhập nội dung của tin tức!";
            txtNoiDung.Focus();
            return false;
        }

        if (fulHinhAnh.PostedFile.ContentLength == 0 && ViewState["MaTinTuc"] == null)
        {
            lblLoi.Text = "Cần upload hình ảnh đại diện cho tin tức!";
            fulHinhAnh.Focus();
            return false;
        }


        return true;
    }


    protected void btnUpdate_Click(object sender, EventArgs e)
    {
        if (!KiemTraHopLe())
            return;

        TinTuc tt;
        if (ViewState["MaTinTuc"] == null)
        {
            string imgname = UploadHinhAnh();

            tt = TTBLL.Them(int.Parse(ddlTheLoai.SelectedValue), txtTieuDe.Text, txtMoTa.Text, txtNoiDung.Text, imgname);
        }
        else
        {
            tt = TTBLL.LayTheoMa((int)ViewState["MaTinTuc"]);
            tt.MaLoaiTT = int.Parse(ddlTheLoai.SelectedValue);
            tt.TieuDe = txtTieuDe.Text;
            tt.MoTa = txtMoTa.Text;
            tt.NoiDung = txtNoiDung.Text;

            if (fulHinhAnh.PostedFile.ContentLength > 0)
            {
                DeleteHinhAnh(tt.HinhAnh);
                tt.HinhAnh = UploadHinhAnh();
            }

            TTBLL.CapNhat();


        }
        Response.Redirect("~/Page_NewsDetail.aspx?Id=" + tt.Ma);


    }

    private void DeleteHinhAnh(string imgname)
    {
        try
        {
            File.Delete(Server.MapPath("~/Images/News/" + imgname));
        }
        catch
        {

        }
    }

    private string UploadHinhAnh()
    {

        string imgname = Common.TaoDaySoNgauNhien(6) + "_" + fulHinhAnh.FileName;
        fulHinhAnh.PostedFile.SaveAs(Server.MapPath("~/Images/News/" + imgname));
        return imgname;
    }
    protected void btnDelete_Click(object sender, EventArgs e)
    {
        TinTuc tt = TTBLL.LayTheoMa((int)ViewState["MaTinTuc"]);
        DeleteHinhAnh(tt.HinhAnh);
        TTBLL.Xoa(tt.Ma);
        Response.Redirect("~/Admin/Page_SearchNews.aspx");
    }
}
